diff -urNad stardict-3.0.1~/src/gconf_file.cpp stardict-3.0.1/src/gconf_file.cpp
--- stardict-3.0.1~/src/gconf_file.cpp	2008-06-17 02:27:34.000000000 +0800
+++ stardict-3.0.1/src/gconf_file.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -21,6 +21,8 @@
 #  include "config.h"
 #endif
 
+#include <memory>
+
 #include <glib/gi18n.h>
 
 #include "gconf_file.hpp"
diff -urNad stardict-3.0.1~/src/inifile.cpp stardict-3.0.1/src/inifile.cpp
--- stardict-3.0.1~/src/inifile.cpp	2008-06-17 02:27:34.000000000 +0800
+++ stardict-3.0.1/src/inifile.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -24,6 +24,7 @@
 #include <vector>
 #include <cerrno>
 #include <cstring>
+#include <cstdlib>
 #include <cstdio>
 #include <glib/gi18n.h>
 #include <glib/gstdio.h>
diff -urNad stardict-3.0.1~/src/lib/common.cpp stardict-3.0.1/src/lib/common.cpp
--- stardict-3.0.1~/src/lib/common.cpp	2008-06-17 02:27:34.000000000 +0800
+++ stardict-3.0.1/src/lib/common.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -24,6 +24,8 @@
 #endif
 
 #include "common.hpp"
+#include <cstring>
+#include <cstdlib>
 
 static void parse_description(const char *p, long len, std::string &description)
 {
diff -urNad stardict-3.0.1~/src/lib/data.cpp stardict-3.0.1/src/lib/data.cpp
--- stardict-3.0.1~/src/lib/data.cpp	2008-06-17 02:27:34.000000000 +0800
+++ stardict-3.0.1/src/lib/data.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -25,7 +25,7 @@
 
 #include "data.hpp"
 #include "getuint32.h"
-
+#include <cstring>
 
 DictBase::DictBase()
 {
diff -urNad stardict-3.0.1~/src/lib/http_client.h stardict-3.0.1/src/lib/http_client.h
--- stardict-3.0.1~/src/lib/http_client.h	2008-03-24 16:00:43.000000000 +0800
+++ stardict-3.0.1/src/lib/http_client.h	2008-06-17 02:27:35.000000000 +0800
@@ -5,6 +5,7 @@
 #include "sigc++/sigc++.h"
 #include <string>
 #include <vector>
+#include <cstring>
 
 #ifndef _WIN32
 #  include <netdb.h>
diff -urNad stardict-3.0.1~/src/lib/pluginmanager.cpp stardict-3.0.1/src/lib/pluginmanager.cpp
--- stardict-3.0.1~/src/lib/pluginmanager.cpp	2008-03-24 16:00:43.000000000 +0800
+++ stardict-3.0.1/src/lib/pluginmanager.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -1,6 +1,7 @@
 #include "pluginmanager.h"
 #include "file.hpp"
 #include <string>
+#include <cstring>
 
 StarDictPluginBaseObject::StarDictPluginBaseObject(const char *filename, GModule *module_, plugin_configure_func_t configure_func_):
 	plugin_filename(filename), module(module_), configure_func(configure_func_)
diff -urNad stardict-3.0.1~/src/lib/stardict_client.cpp stardict-3.0.1/src/lib/stardict_client.cpp
--- stardict-3.0.1~/src/lib/stardict_client.cpp	2008-06-17 02:27:34.000000000 +0800
+++ stardict-3.0.1/src/lib/stardict_client.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -29,6 +29,8 @@
 #include "getuint32.h"
 
 #include "stardict_client.hpp"
+#include <cstdlib>
+#include <cstring>
 
 #define PROTOCOL_VERSION "0.3"
 
diff -urNad stardict-3.0.1~/src/lib/stddict.cpp stardict-3.0.1/src/lib/stddict.cpp
--- stardict-3.0.1~/src/lib/stddict.cpp	2008-06-17 02:27:34.000000000 +0800
+++ stardict-3.0.1/src/lib/stddict.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -38,6 +38,7 @@
 #include "stddict.hpp"
 #include <algorithm>
 #include "getuint32.h"
+#include <cstring>
 
 static inline gint stardict_strcmp(const gchar *s1, const gchar *s2)
 {
diff -urNad stardict-3.0.1~/src/lib/treedict.cpp stardict-3.0.1/src/lib/treedict.cpp
--- stardict-3.0.1~/src/lib/treedict.cpp	2008-06-17 02:27:34.000000000 +0800
+++ stardict-3.0.1/src/lib/treedict.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -28,6 +28,7 @@
 #include "getuint32.h"
 
 #include "treedict.hpp"
+#include <cstring>
 
 GtkTreeStore *TreeDict::model=NULL;
 
diff -urNad stardict-3.0.1~/src/pangoview.cpp stardict-3.0.1/src/pangoview.cpp
--- stardict-3.0.1~/src/pangoview.cpp	2008-06-17 02:27:34.000000000 +0800
+++ stardict-3.0.1/src/pangoview.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -21,6 +21,8 @@
 #  include "config.h"
 #endif
 
+#include <cstring>
+
 #include "gtktextviewpango.h"
 #include "utils.h"
 #include "skin.h"//for SkinCursor definition
diff -urNad stardict-3.0.1~/src/prefsdlg.cpp stardict-3.0.1/src/prefsdlg.cpp
--- stardict-3.0.1~/src/prefsdlg.cpp	2008-06-17 02:27:34.000000000 +0800
+++ stardict-3.0.1/src/prefsdlg.cpp	2008-06-17 02:28:06.000000000 +0800
@@ -20,6 +20,8 @@
 #  include "config.h"
 #endif
 
+#include <cstdlib>
+
 #include <glib/gi18n.h>
 #include <glib/gstdio.h>
 
diff -urNad stardict-3.0.1~/src/readword.cpp stardict-3.0.1/src/readword.cpp
--- stardict-3.0.1~/src/readword.cpp	2007-07-10 15:16:04.000000000 +0800
+++ stardict-3.0.1/src/readword.cpp	2008-06-17 02:28:06.000000000 +0800
@@ -3,6 +3,7 @@
 #endif
 
 #include <cstring>
+#include <cstdlib>
 #include <string>
 
 #include <glib/gi18n.h>
diff -urNad stardict-3.0.1~/src/sigc++/signal.h stardict-3.0.1/src/sigc++/signal.h
--- stardict-3.0.1~/src/sigc++/signal.h	2007-07-10 15:16:01.000000000 +0800
+++ stardict-3.0.1/src/sigc++/signal.h	2008-06-17 02:28:06.000000000 +0800
@@ -18,7 +18,7 @@
   //Compilers, such as older versions of SUN Forte C++, that do not allow this also often
   //do not allow a typedef to have the same name as a class in the typedef's definition.
   //For Sun Forte CC 5.7 (SUN Workshop 10), comment this out to fix the build.
-  #define SIGC_TYPEDEF_REDEFINE_ALLOWED 1
+//  #define SIGC_TYPEDEF_REDEFINE_ALLOWED 1
 #endif
 
 namespace sigc {
diff -urNad stardict-3.0.1~/src/utils.cpp stardict-3.0.1/src/utils.cpp
--- stardict-3.0.1~/src/utils.cpp	2008-06-17 02:27:34.000000000 +0800
+++ stardict-3.0.1/src/utils.cpp	2008-06-17 02:28:06.000000000 +0800
@@ -21,6 +21,8 @@
 #  include "config.h"
 #endif
 
+#include <cstring>
+
 #include <glib.h>
 #include <glib/gi18n.h>
 #include <cstdlib>
diff -urNad stardict-3.0.1~/src/x11_iskeyspressed.hpp stardict-3.0.1/src/x11_iskeyspressed.hpp
--- stardict-3.0.1~/src/x11_iskeyspressed.hpp	2007-07-10 15:16:04.000000000 +0800
+++ stardict-3.0.1/src/x11_iskeyspressed.hpp	2008-06-17 02:27:35.000000000 +0800
@@ -1,6 +1,8 @@
 #ifndef _X11_ISKEYSPRESSED_HPP_
 #define _X11_ISKEYSPRESSED_HPP_
 
+#include <memory>
+
 #include <gdk/gdkx.h>
 #include <X11/keysym.h>
 #include <gtk/gtk.h>
diff -urNad stardict-3.0.1~/stardict-plugins/stardict-dictdotcn-plugin/stardict_dictdotcn.cpp stardict-3.0.1/stardict-plugins/stardict-dictdotcn-plugin/stardict_dictdotcn.cpp
--- stardict-3.0.1~/stardict-plugins/stardict-dictdotcn-plugin/stardict_dictdotcn.cpp	2007-10-10 17:28:29.000000000 +0800
+++ stardict-3.0.1/stardict-plugins/stardict-dictdotcn-plugin/stardict_dictdotcn.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -1,6 +1,6 @@
 #include "stardict_dictdotcn.h"
 #include <glib/gi18n.h>
-#include <string>
+#include <cstring>
 #include <list>
 
 #ifdef _WIN32
diff -urNad stardict-3.0.1~/stardict-plugins/stardict-espeak-tts-plugin/stardict_espeak.cpp stardict-3.0.1/stardict-plugins/stardict-espeak-tts-plugin/stardict_espeak.cpp
--- stardict-3.0.1~/stardict-plugins/stardict-espeak-tts-plugin/stardict_espeak.cpp	2007-09-19 16:27:18.000000000 +0800
+++ stardict-3.0.1/stardict-plugins/stardict-espeak-tts-plugin/stardict_espeak.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -1,4 +1,5 @@
 #include "stardict_espeak.h"
+#include <cstring>
 #include <espeak/speak_lib.h>
 #include <glib/gi18n.h>
 
diff -urNad stardict-3.0.1~/stardict-plugins/stardict-gucharmap-plugin/stardict_gucharmap.cpp stardict-3.0.1/stardict-plugins/stardict-gucharmap-plugin/stardict_gucharmap.cpp
--- stardict-3.0.1~/stardict-plugins/stardict-gucharmap-plugin/stardict_gucharmap.cpp	2007-08-31 15:10:41.000000000 +0800
+++ stardict-3.0.1/stardict-plugins/stardict-gucharmap-plugin/stardict_gucharmap.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -1,7 +1,8 @@
 #include "stardict_gucharmap.h"
 #include <glib/gi18n.h>
 #include <gucharmap/gucharmap.h>
-#include <string>
+#include <cstring>
+#include <cstdlib>
 
 static char *build_dictdata(char type, const char *definition)
 {
diff -urNad stardict-3.0.1~/stardict-plugins/stardict-html-parsedata-plugin/stardict_html_parsedata.cpp stardict-3.0.1/stardict-plugins/stardict-html-parsedata-plugin/stardict_html_parsedata.cpp
--- stardict-3.0.1~/stardict-plugins/stardict-html-parsedata-plugin/stardict_html_parsedata.cpp	2007-09-13 15:51:55.000000000 +0800
+++ stardict-3.0.1/stardict-plugins/stardict-html-parsedata-plugin/stardict_html_parsedata.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -1,4 +1,6 @@
 #include "stardict_html_parsedata.h"
+#include <cstring>
+#include <cstdlib>
 #include <glib/gi18n.h>
 
 #ifdef _WIN32
diff -urNad stardict-3.0.1~/stardict-plugins/stardict-man-plugin/stardict_man.cpp stardict-3.0.1/stardict-plugins/stardict-man-plugin/stardict_man.cpp
--- stardict-3.0.1~/stardict-plugins/stardict-man-plugin/stardict_man.cpp	2007-09-19 16:30:54.000000000 +0800
+++ stardict-3.0.1/stardict-plugins/stardict-man-plugin/stardict_man.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -1,6 +1,6 @@
 #include "stardict_man.h"
 #include <glib/gi18n.h>
-#include <string>
+#include <cstring>
 
 static const StarDictPluginSystemInfo *plugin_info = NULL;
 static bool need_prefix;
diff -urNad stardict-3.0.1~/stardict-plugins/stardict-powerword-parsedata-plugin/stardict_powerword_parsedata.cpp stardict-3.0.1/stardict-plugins/stardict-powerword-parsedata-plugin/stardict_powerword_parsedata.cpp
--- stardict-3.0.1~/stardict-plugins/stardict-powerword-parsedata-plugin/stardict_powerword_parsedata.cpp	2007-10-25 16:16:37.000000000 +0800
+++ stardict-3.0.1/stardict-plugins/stardict-powerword-parsedata-plugin/stardict_powerword_parsedata.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -1,4 +1,5 @@
 #include "stardict_powerword_parsedata.h"
+#include <cstring>
 #include <glib/gi18n.h>
 
 #ifdef _WIN32
diff -urNad stardict-3.0.1~/stardict-plugins/stardict-qqwry-plugin/stardict_qqwry.cpp stardict-3.0.1/stardict-plugins/stardict-qqwry-plugin/stardict_qqwry.cpp
--- stardict-3.0.1~/stardict-plugins/stardict-qqwry-plugin/stardict_qqwry.cpp	2007-11-02 16:41:26.000000000 +0800
+++ stardict-3.0.1/stardict-plugins/stardict-qqwry-plugin/stardict_qqwry.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -1,7 +1,8 @@
 #include "stardict_qqwry.h"
 #include <glib/gi18n.h>
 #include <glib/gstdio.h>
-#include <string>
+#include <cstring>
+#include <cstdlib>
 
 #ifdef _WIN32
 #include <windows.h>
diff -urNad stardict-3.0.1~/stardict-plugins/stardict-spell-plugin/stardict_spell.cpp stardict-3.0.1/stardict-plugins/stardict-spell-plugin/stardict_spell.cpp
--- stardict-3.0.1~/stardict-plugins/stardict-spell-plugin/stardict_spell.cpp	2007-09-19 16:29:21.000000000 +0800
+++ stardict-3.0.1/stardict-plugins/stardict-spell-plugin/stardict_spell.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -1,4 +1,5 @@
 #include "stardict_spell.h"
+#include <cstring>
 #include <glib.h>
 #include <glib/gi18n.h>
 #include <enchant.h>
diff -urNad stardict-3.0.1~/stardict-plugins/stardict-wiki-parsedata-plugin/stardict_wiki2xml.cpp stardict-3.0.1/stardict-plugins/stardict-wiki-parsedata-plugin/stardict_wiki2xml.cpp
--- stardict-3.0.1~/stardict-plugins/stardict-wiki-parsedata-plugin/stardict_wiki2xml.cpp	2007-07-10 15:16:15.000000000 +0800
+++ stardict-3.0.1/stardict-plugins/stardict-wiki-parsedata-plugin/stardict_wiki2xml.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -1,5 +1,6 @@
 #include "stardict_wiki2xml.h"
 #include "WIKI2XML.h"
+#include <cstring>
 #include <glib.h>
 
 std::string wiki2xml(std::string &str)
diff -urNad stardict-3.0.1~/stardict-plugins/stardict-wiki-parsedata-plugin/stardict_wiki_parsedata.cpp stardict-3.0.1/stardict-plugins/stardict-wiki-parsedata-plugin/stardict_wiki_parsedata.cpp
--- stardict-3.0.1~/stardict-plugins/stardict-wiki-parsedata-plugin/stardict_wiki_parsedata.cpp	2007-08-31 14:41:21.000000000 +0800
+++ stardict-3.0.1/stardict-plugins/stardict-wiki-parsedata-plugin/stardict_wiki_parsedata.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -1,5 +1,6 @@
 #include "stardict_wiki_parsedata.h"
 #include "stardict_wiki2xml.h"
+#include <cstring>
 #include <glib/gi18n.h>
 
 #ifdef _WIN32
diff -urNad stardict-3.0.1~/stardict-plugins/stardict-wordnet-plugin/court_widget.cpp stardict-3.0.1/stardict-plugins/stardict-wordnet-plugin/court_widget.cpp
--- stardict-3.0.1~/stardict-plugins/stardict-wordnet-plugin/court_widget.cpp	2007-10-18 09:36:22.000000000 +0800
+++ stardict-3.0.1/stardict-plugins/stardict-wordnet-plugin/court_widget.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -1,4 +1,5 @@
 #include "court_widget.h"
+#include <cstring>
 #include <math.h>
 #include <list>
 
diff -urNad stardict-3.0.1~/stardict-plugins/stardict-wordnet-plugin/stardict_wordnet.cpp stardict-3.0.1/stardict-plugins/stardict-wordnet-plugin/stardict_wordnet.cpp
--- stardict-3.0.1~/stardict-plugins/stardict-wordnet-plugin/stardict_wordnet.cpp	2007-10-15 11:32:04.000000000 +0800
+++ stardict-3.0.1/stardict-plugins/stardict-wordnet-plugin/stardict_wordnet.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -1,5 +1,6 @@
 #include "stardict_wordnet.h"
 #include "court_widget.h"
+#include <cstring>
 #include <glib/gi18n.h>
 
 #ifdef _WIN32
diff -urNad stardict-3.0.1~/stardict-plugins/stardict-wordnet-plugin/stardict_wordnet_parsedata.cpp stardict-3.0.1/stardict-plugins/stardict-wordnet-plugin/stardict_wordnet_parsedata.cpp
--- stardict-3.0.1~/stardict-plugins/stardict-wordnet-plugin/stardict_wordnet_parsedata.cpp	2007-10-10 17:39:10.000000000 +0800
+++ stardict-3.0.1/stardict-plugins/stardict-wordnet-plugin/stardict_wordnet_parsedata.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -1,4 +1,5 @@
 #include "stardict_wordnet_parsedata.h"
+#include <cstring>
 #include <glib/gi18n.h>
 
 #ifdef _WIN32
diff -urNad stardict-3.0.1~/stardict-plugins/stardict-xdxf-parsedata-plugin/stardict_xdxf_parsedata.cpp stardict-3.0.1/stardict-plugins/stardict-xdxf-parsedata-plugin/stardict_xdxf_parsedata.cpp
--- stardict-3.0.1~/stardict-plugins/stardict-xdxf-parsedata-plugin/stardict_xdxf_parsedata.cpp	2007-08-31 14:41:54.000000000 +0800
+++ stardict-3.0.1/stardict-plugins/stardict-xdxf-parsedata-plugin/stardict_xdxf_parsedata.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -1,4 +1,5 @@
 #include "stardict_xdxf_parsedata.h"
+#include <cstring>
 #include <glib/gi18n.h>
 
 #ifdef _WIN32
diff -urNad stardict-3.0.1~/tests/t_config_file.cpp stardict-3.0.1/tests/t_config_file.cpp
--- stardict-3.0.1~/tests/t_config_file.cpp	2007-07-10 15:16:04.000000000 +0800
+++ stardict-3.0.1/tests/t_config_file.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -8,6 +8,7 @@
 #include <cstring>
 #include <iterator>
 #include <iostream>
+#include <memory>
 #include <gtk/gtk.h>
 
 #include "config_file.hpp"
diff -urNad stardict-3.0.1~/tests/t_xml.cpp stardict-3.0.1/tests/t_xml.cpp
--- stardict-3.0.1~/tests/t_xml.cpp	2007-07-10 15:16:04.000000000 +0800
+++ stardict-3.0.1/tests/t_xml.cpp	2008-06-17 02:27:35.000000000 +0800
@@ -5,6 +5,7 @@
 #include <glib.h>
 #include <cstdlib>
 #include <string>
+#include <cstring>
 
 
 static void xml_decode(const char *str, std::string& decoded)
